//package com.guang.springbootone.config;
//
//import com.guang.springbootone.bean.Cat;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//import org.springframework.core.convert.converter.Converter;
//import org.springframework.format.FormatterRegistry;
//import org.springframework.util.StringUtils;
//import org.springframework.web.filter.HiddenHttpMethodFilter;
//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
//
//import java.time.LocalDate;
//import java.time.format.DateTimeFormatter;
//import java.util.Date;
//import java.util.Objects;
//
///**
// * @author liguang
// * @date 2022/5/11 12:38
// */
//@Configuration(proxyBeanMethods = false)
//public class WebConfig {
//
//
//    private static final Logger logger = LoggerFactory.getLogger(WebConfig.class);
//
//    /**
//     * 静态页面使用resr风格
//     * @return
//     */
//    @Bean
//    public HiddenHttpMethodFilter hiddenHttpMethodFilter(){
//        HiddenHttpMethodFilter hiddenHttpMethodFilter = new HiddenHttpMethodFilter();
//        hiddenHttpMethodFilter.setMethodParam("_self_m");
//        return hiddenHttpMethodFilter;
//    }
//
//    // 表示的是接管springMVC中
//    @Bean
//    public WebMvcConfigurer webMvcConfigurer(){
//        return new WebMvcConfigurer() {
//            @Override
//            public void addFormatters(FormatterRegistry registry) {
//
//                // 自定义的转换器类
//                // 姓名,年龄--->Cat
//                registry.addConverter(new Converter<String, Cat>() {
//                    @Override
//                    public Cat convert(String source) {
//                        Objects.requireNonNull(source,"source为空");
//                        try {
//                            String[] split = source.split(",");
//                            Cat cat = new Cat();
//                            cat.setName(split[0]);
//                            cat.setAge(Integer.parseInt(split[1]));
//                            return cat;
//                        }catch (Exception exception){
//                            logger.error("对应的异常信息是：{},具体异常是：{}",exception.getMessage(),exception);
//                            // 如果不是的话，那么最终返回的是空
//                            return null;
//                        }
//                    }
//                });
//
//                registry.addConverter(new Converter<String, Date>() {
//                    @Override
//                    public Date convert(String source) {
//                        if (!StringUtils.isEmpty(source)){
//                            // 首先尝试以xxxx/YY/zz格式解析
//                            DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy/MM/dd");
//                            LocalDate.parse(source,dateTimeFormatter);
//                        }
//                        return null;
//                    }
//                });
//
//            }
//        };
//    }
//
//
//}
